home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.basic;
-
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.JMenu;
- import com.sun.java.swing.KeyStroke;
- import com.sun.java.swing.MenuElement;
- import com.sun.java.swing.event.ChangeEvent;
- import com.sun.java.swing.event.ChangeListener;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Window;
- import java.io.Serializable;
-
- class BasicMenuUI$MenuChangeListener implements ChangeListener, Serializable {
- JMenu menu;
- // $FF: renamed from: ui com.sun.java.swing.plaf.basic.BasicMenuUI
- BasicMenuUI field_0;
- boolean isSelected = false;
- Component wasFocused;
-
- public BasicMenuUI$MenuChangeListener(JMenu m, BasicMenuUI ui) {
- this.menu = m;
- this.field_0 = ui;
- this.validateKeyboardActions(this.menu.isSelected());
- }
-
- public void stateChanged(ChangeEvent e) {
- this.field_0.validateKeyboardAccelerator();
- this.validateKeyboardActions(this.menu.isSelected());
- }
-
- Component findFocusedComponent(Component c) {
- for(Container parent = c.getParent(); parent != null; parent = ((Component)parent).getParent()) {
- if (parent instanceof Window) {
- return ((Window)parent).getFocusOwner();
- }
- }
-
- return null;
- }
-
- void validateKeyboardActions(boolean sel) {
- if (sel != this.isSelected) {
- this.isSelected = sel;
- if (this.isSelected) {
- boolean isRequestFocusEnabled = this.menu.isRequestFocusEnabled();
- this.wasFocused = this.findFocusedComponent(this.menu);
- if (!isRequestFocusEnabled) {
- this.menu.setRequestFocusEnabled(true);
- }
-
- this.menu.requestFocus();
- if (!isRequestFocusEnabled) {
- this.menu.setRequestFocusEnabled(false);
- }
-
- this.menu.registerKeyboardAction(new BasicMenuUI.MenuChangeListener.CancelAction(this), KeyStroke.getKeyStroke(27, 0, false), 2);
- this.menu.registerKeyboardAction(new BasicMenuUI.MenuChangeListener.SelectNextItemAction(this), KeyStroke.getKeyStroke(40, 0, false), 2);
- this.menu.registerKeyboardAction(new BasicMenuUI.MenuChangeListener.SelectPreviousItemAction(this), KeyStroke.getKeyStroke(38, 0, false), 2);
- this.menu.registerKeyboardAction(new BasicMenuUI.MenuChangeListener.SelectParentItemAction(this), KeyStroke.getKeyStroke(37, 0, false), 2);
- this.menu.registerKeyboardAction(new BasicMenuUI.MenuChangeListener.SelectChildItemAction(this), KeyStroke.getKeyStroke(39, 0, false), 2);
- this.menu.registerKeyboardAction(new BasicMenuUI.MenuChangeListener.ReturnAction(this), KeyStroke.getKeyStroke(10, 0, false), 2);
- } else {
- this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(27, 0, false));
- this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(40, 0, false));
- this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(38, 0, false));
- this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(37, 0, false));
- this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(39, 0, false));
- this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(10, 0, false));
- if (this.wasFocused != null) {
- if (this.wasFocused instanceof JComponent) {
- JComponent jc = (JComponent)this.wasFocused;
- boolean isRFEnabled = jc.isRequestFocusEnabled();
- if (!isRFEnabled) {
- jc.setRequestFocusEnabled(true);
- }
-
- this.wasFocused.requestFocus();
- if (!isRFEnabled) {
- jc.setRequestFocusEnabled(false);
- }
- } else {
- this.wasFocused.requestFocus();
- }
-
- this.wasFocused = null;
- }
- }
- }
-
- }
-
- private MenuElement nextEnabledChild(MenuElement[] e, int fromIndex) {
- int i = fromIndex;
-
- for(int c = e.length; i < c; ++i) {
- if (e[i] != null) {
- Component comp = e[i].getComponent();
- if (comp != null && comp.isEnabled()) {
- return e[i];
- }
- }
- }
-
- return null;
- }
-
- private MenuElement previousEnabledChild(MenuElement[] e, int fromIndex) {
- for(int i = fromIndex; i >= 0; --i) {
- if (e[i] != null) {
- Component comp = e[i].getComponent();
- if (comp != null && comp.isEnabled()) {
- return e[i];
- }
- }
- }
-
- return null;
- }
-
- static MenuElement access$previousEnabledChild(BasicMenuUI$MenuChangeListener var0, MenuElement[] var1, int var2) {
- return var0.previousEnabledChild(var1, var2);
- }
-
- static MenuElement access$nextEnabledChild(BasicMenuUI$MenuChangeListener var0, MenuElement[] var1, int var2) {
- return var0.nextEnabledChild(var1, var2);
- }
- }
-